package fr.ajicommerce.core.service.implementation;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import fr.ajicommerce.core.dao.interfaces.ICommandeDAO;
import fr.ajicommerce.core.dto.CommandeDTO;
import fr.ajicommerce.core.entities.Commande;
import fr.ajicommerce.core.service.generics.GenericService;
import fr.ajicommerce.core.service.interfaces.CommandeService;

@Component("commandeServiceImpl")
@Transactional
public class CommandeServiceImpl  extends GenericService<CommandeDTO, Commande>
implements CommandeService {
	
	public CommandeServiceImpl(Class<Commande> clazzOfA,
			Class<CommandeDTO> entityClassT) {
		super(clazzOfA, entityClassT);
	}

	public CommandeServiceImpl() {
		super(Commande.class, CommandeDTO.class);
	}

	@Autowired
	ICommandeDAO commandeDAO;

	@Override
	public CommandeDTO findCommandeByRef(String refCommande) {
		
		// recherche d'une Commande selon sa référence de Commande
		Commande dao = commandeDAO.findCommandeByRef(refCommande);
		CommandeDTO dto = new CommandeDTO();
		
		// transfert DAO --> DTO
		BeanUtils.copyProperties(dao, dto);

		return dto;
	}
	
	/**
	 * TODO rajouter des méthodes aux CommandeService ici
	 * 
	 */

}
